package com.gjintel.framework.menu.service;

import java.util.List;

import com.gjintel.framework.menu.model.Model;
import com.gjintel.sdk.base.dao.Page;
import com.gjintel.sdk.base.dao.Sort;
import com.gjintel.sdk.base.service.IBaseService;
import com.gjintel.sdk.dto.TreeDto;

/**
 * @description 系统菜单的业务接口
 * @author fengya
 * @date 2015-7-29 下午05:38:50
 */
public interface IMenuService extends IBaseService {
	/**
	 * @description 根据ID得到该ID下的节点数据
	 * @author fengya
	 * @date 2015-7-29 下午05:39:06
	 * @param treeList
	 *            获得的节点集合
	 * @param id
	 *            查询ID下的子节点
	 * @param nodeName
	 *            待查询的名称
	 * @param selectIds
	 *            回显显示的ID的所有的值
	 * @param isModelTreeDialog
	 *            是否是对话框
	 * @return
	 * @return List<String> 查询得到的所有的节点集合
	 */
	List<String> getModelTree(List<TreeDto> treeList, String id, String nodeName, String selectIds, boolean isModelTreeDialog);

	/**
	 * @description 分页查找系统菜单记录
	 * @author fengya
	 * @date 2015-7-29 下午05:40:00
	 * @param page
	 * @param dept
	 * @param sort
	 * @return void
	 */
	@SuppressWarnings("unchecked")
	void findAll(Page page, Model dept, Sort sort);

	/**
	 * @description 根据选择的节点ID，删除对应的记录数据
	 * @author fengya
	 * @date 2015-7-29 下午05:40:18
	 * @param deleteIds
	 * @throws Exception
	 * @return void
	 */
	void removeData(String deleteIds);

	/**
	 * @description 根据角色ID，得到该角色下的菜单信息
	 * @author fengya
	 * @date 2015-7-29 下午05:40:40
	 * @param roleId
	 * @return
	 * @return List<Model>
	 */
	List<Model> getModelByRole(String roleId);

	/**
	 * @description 得到所有的系统菜单信息
	 * @author fengya
	 * @date 2015-7-29 下午05:33:31
	 * @return
	 * @return List<Model>
	 */
	List<Model> findAll();
}
